package com.auto.autoapp.data.api

import com.auto.autoapp.data.model.ApiResponse
import com.auto.autoapp.data.model.PageData
import com.auto.autoapp.data.model.User
import com.auto.autoapp.data.model.UserInfo
import retrofit2.http.*

/**
 * 用户相关 API 接口
 */
interface UserApi {


    @POST("User/LoginByName")
    suspend fun login(
        @Body map: MutableMap<String, String>
    ): ApiResponse<UserInfo>


    /**
     * 获取用户列表
     * @param page 页码
     * @param pageSize 每页数量
     */
    @GET("users")
    suspend fun getUserList(
        @Query("page") page: Int = 1,
        @Query("pageSize") pageSize: Int = 20
    ): ApiResponse<PageData<User>>

    /**
     * 获取用户详情
     * @param userId 用户ID
     */
    @GET("users/{id}")
    suspend fun getUserDetail(
        @Path("id") userId: Int
    ): ApiResponse<User>

    /**
     * 创建用户
     * @param name 用户名
     * @param email 邮箱
     * @param phone 电话
     */
    @FormUrlEncoded
    @POST("users")
    suspend fun createUser(
        @Field("name") name: String,
        @Field("email") email: String,
        @Field("phone") phone: String? = null
    ): ApiResponse<User>

    /**
     * 更新用户信息
     * @param userId 用户ID
     * @param user 用户信息
     */
    @PUT("users/{id}")
    suspend fun updateUser(
        @Path("id") userId: Int,
        @Body user: User
    ): ApiResponse<User>

    /**
     * 删除用户
     * @param userId 用户ID
     */
    @DELETE("users/{id}")
    suspend fun deleteUser(
        @Path("id") userId: Int
    ): ApiResponse<Boolean>
}


